/*change log
v01:  Basic functions ； short press to tare the force_meter 
v02:  
v03: add phyphoxfile_20N code , add calibration data to EEPROM , 4096 bytes , stored in addr 0 , with 4 bytes of float32LittleEndian data.

    
*/




#include <Arduino.h>

//EEPROM stored config data calibration const value , as used in scale.set_scale( scale_bias).
#include <EEPROM.h>

//OneButton lib
#include "OneButton.h"
//phyphoxBle lib
#include <phyphoxBle.h> 



//hx711 force ADC
#include "HX711.h"

// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = SDA;
const int LOADCELL_SCK_PIN = SCL;

HX711 scale;

//EEPROM stored the force sensor calibration data
#define SCALE_CONST 54887.755f

// machine 's has 3 State  
#define SLEEP_STATE 0
#define WAKE_UP_STATE 1
#define WORK_STATE 2

#define BUTTON_ELAPSED_COUNT 1
#define BUTTON_OMMIT_TIME 1000


//#define BUTTON_PIN_BITMASK 0x200000000 // 2^33 in hex
#define BUTTON_PIN_BITMASK  //2^13 (GPIO 13 ) in hex
RTC_DATA_ATTR int bootCount = 0;
RTC_DATA_ATTR int machineState = SLEEP_STATE;
RTC_DATA_ATTR int buttonCount = 0;
long machine_time = 0;
long start_machine_time = 0;

//One button connected with pin GPIO 13
//lonlin32 lite  Xer power button using GPIO 13
#define PIN_INPUT 13
// Attach a LED using GPIO 25 and VCC. The LED is on when output level is LOW.

// Setup a new OneButton on pin PIN_INPUT
// The 2. parameter activeLOW is true, because external wiring sets the button to LOW when pressed.
 //GPIO 13 pull down with 10K Register to ground , so activeHigh is false. external wiring set the button to HIGH when pressed.
OneButton button(PIN_INPUT, false);

// save the millis when a press has started.
unsigned long pressStartTime;

void IRAM_ATTR checkTicks() {
  // include all buttons here to be checked
  button.tick(); // just call tick() to check the state.
}

// this function will be called when the button was pressed 1 time only.
void singleClick() {
  //force sensor to tare to zero.
  scale.tare();
  Serial.println("singleClick() detected.");

} // singleClick

void doubleClick() {
  Serial.println("doubleClick() detected.");

  
} // doubleClick

// this function will be called when the button was pressed multiple times in a short timeframe.
void multiClick() {
  int n = button.getNumberClicks();
  if (n == 3) {
    Serial.println("tripleClick detected.");
  } else if (n == 4) {
    //Serial.println("quadrupleClick detected.");
  } else {
    Serial.print("multiClick(");
   // Serial.print(n);
    Serial.println(") detected.");
  }

  //ledState = !ledState; // reverse the LED
  //digitalWrite(PIN_LED, ledState);
} // multiClick

// this function will be called when the button was held down for 1 second or more.
void pressStart() {
  Serial.println("pressStart()");
  pressStartTime = millis() - 1000; // as set in setPressMs()
} // pressStart()

// this function will be called when the button was released after a long hold.
void pressStop() {
  Serial.print("pressStop(");
  Serial.print(millis() - pressStartTime);
  Serial.println(") detected.");

  if(machineState == WAKE_UP_STATE|| machineState == WORK_STATE){
          machineState = SLEEP_STATE; //Set meter go to deep sleep
          Serial.println(machineState);
          Serial.println("intruupt call back");
          return ;  
        }
  if(machineState == SLEEP_STATE ){
          machineState = WAKE_UP_STATE; // Set mag meter to wake up
          Serial.println(machineState);
          Serial.println("intruupt call back");
          return;
        }
} // pressStop()

//Esp 32 timer
hw_timer_t * timer = NULL;
uint8_t  timer_flag = 0;

void IRAM_ATTR timer0_callback( void ){
  timer_flag = 1;
}




//phyphox experiment file 
uint8_t Xer_force_sensor_20N_phyphox_file[7677]={
60 ,112 ,104 ,121 ,112 ,104 ,111 ,120 ,32 ,120 ,109 ,108 ,110 ,115 ,61 ,34 ,104 ,116 ,116 ,112 ,58 ,47 ,47 ,112 ,104 ,121 ,112 ,104 ,111 ,120 ,46 ,111 ,114 ,103 ,47 ,120 ,109 ,108 ,34 ,32 ,120 ,109 ,108 ,110 ,115 ,58 ,101 ,100 ,105 ,116 ,111 ,114 ,61 ,34 ,104 ,116 ,116 ,112 ,58 ,47 ,47 ,112 ,104 ,121 ,112 ,104 ,111 ,120 ,46 ,111 ,114 ,103 ,47 ,101 ,100 ,105 ,116 ,111 ,114 ,47 ,120 ,109 ,108 ,34 ,32 ,118 ,101 ,114 ,115 ,105 ,111 ,110 ,61 ,34 ,49 ,46 ,55 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,118 ,101 ,114 ,115 ,105 ,111 ,110 ,61 ,34 ,49 ,46 ,48 ,34 ,32 ,108 ,111 ,99 ,97 ,108 ,101 ,61 ,34 ,101 ,110 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,116 ,105 ,116 ,108 ,101 ,62 ,88 ,101 ,114 ,95 ,70 ,111 ,114 ,99 ,101 ,32 ,69 ,120 ,112 ,101 ,114 ,105 ,109 ,101 ,110 ,116 ,60 ,47 ,116 ,105 ,116 ,108 ,101 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,99 ,97 ,116 ,101 ,103 ,111 ,114 ,121 ,62 ,88 ,101 ,114 ,60 ,47 ,99 ,97 ,116 ,101 ,103 ,111 ,114 ,121 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,108 ,111 ,114 ,62 ,53 ,70 ,57 ,69 ,65 ,48 ,60 ,47 ,99 ,111 ,108 ,111 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,100 ,101 ,115 ,99 ,114 ,105 ,112 ,116 ,105 ,111 ,110 ,62 ,77 ,105 ,99 ,114 ,111 ,32 ,70 ,111 ,114 ,99 ,101 ,32 ,115 ,101 ,110 ,115 ,111 ,114 ,32 ,101 ,120 ,101 ,112 ,114 ,105 ,109 ,101 ,110 ,116 ,32 ,114 ,101 ,99 ,111 ,114 ,100 ,101 ,114 ,32 ,119 ,105 ,116 ,104 ,32 ,88 ,101 ,114 ,32 ,98 ,111 ,120 ,46 ,10 ,65 ,114 ,114 ,97 ,110 ,103 ,101 ,109 ,101 ,110 ,116 ,32 ,58 ,32 ,45 ,50 ,48 ,78 ,32 ,126 ,32 ,43 ,50 ,48 ,78 ,60 ,47 ,100 ,101 ,115 ,99 ,114 ,105 ,112 ,116 ,105 ,111 ,110 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,116 ,114 ,97 ,110 ,115 ,108 ,97 ,116 ,105 ,111 ,110 ,115 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,116 ,114 ,97 ,110 ,115 ,108 ,97 ,116 ,105 ,111 ,110 ,32 ,108 ,111 ,99 ,97 ,108 ,101 ,61 ,34 ,122 ,104 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,116 ,105 ,116 ,108 ,101 ,62 ,229 ,138 ,155 ,228 ,188 ,160 ,230 ,132 ,159 ,229 ,153 ,168 ,60 ,47 ,116 ,105 ,116 ,108 ,101 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,97 ,116 ,101 ,103 ,111 ,114 ,121 ,62 ,232 ,142 ,134 ,231 ,148 ,176 ,229 ,155 ,155 ,228 ,184 ,173 ,231 ,137 ,169 ,231 ,144 ,134 ,229 ,174 ,158 ,233 ,170 ,140 ,229 ,174 ,164 ,60 ,47 ,99 ,97 ,116 ,101 ,103 ,111 ,114 ,121 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,100 ,101 ,115 ,99 ,114 ,105 ,112 ,116 ,105 ,111 ,110 ,62 ,229 ,138 ,155 ,228 ,188 ,160 ,230 ,132 ,159 ,229 ,153 ,168 ,229 ,174 ,158 ,233 ,170 ,140 ,227 ,128 ,130 ,230 ,181 ,139 ,233 ,135 ,143 ,232 ,140 ,131 ,229 ,155 ,180 ,58 ,45 ,50 ,48 ,78 ,32 ,126 ,32 ,43 ,32 ,50 ,48 ,78 ,46 ,32 ,60 ,47 ,100 ,101 ,115 ,99 ,114 ,105 ,112 ,116 ,105 ,111 ,110 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,70 ,111 ,114 ,99 ,101 ,32 ,45 ,32 ,116 ,105 ,109 ,101 ,32 ,71 ,114 ,97 ,112 ,104 ,34 ,62 ,229 ,138 ,155 ,45 ,230 ,151 ,182 ,233 ,151 ,180 ,229 ,155 ,190 ,229 ,131 ,143 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,70 ,45 ,116 ,32 ,71 ,114 ,97 ,112 ,104 ,34 ,62 ,70 ,45 ,116 ,32 ,32 ,229 ,155 ,190 ,229 ,131 ,143 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,116 ,34 ,62 ,116 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,70 ,34 ,62 ,70 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,115 ,34 ,62 ,115 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,78 ,34 ,62 ,78 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,70 ,34 ,62 ,70 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,70 ,111 ,114 ,99 ,101 ,95 ,118 ,97 ,108 ,117 ,101 ,34 ,62 ,229 ,138 ,155 ,231 ,154 ,132 ,229 ,164 ,167 ,229 ,176 ,143 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,70 ,111 ,114 ,99 ,101 ,32 ,118 ,97 ,108 ,117 ,101 ,34 ,62 ,229 ,138 ,155 ,231 ,154 ,132 ,229 ,164 ,167 ,229 ,176 ,143 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,70 ,111 ,114 ,99 ,101 ,32 ,118 ,97 ,108 ,117 ,101 ,34 ,62 ,229 ,138 ,155 ,231 ,154 ,132 ,229 ,164 ,167 ,229 ,176 ,143 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,115 ,116 ,100 ,100 ,101 ,118 ,95 ,102 ,111 ,114 ,99 ,101 ,95 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,34 ,62 ,230 ,160 ,135 ,229 ,135 ,134 ,229 ,129 ,143 ,229 ,183 ,174 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,77 ,97 ,115 ,115 ,34 ,62 ,232 ,180 ,168 ,233 ,135 ,143 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,109 ,97 ,115 ,115 ,34 ,62 ,232 ,180 ,168 ,233 ,135 ,143 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,116 ,114 ,105 ,110 ,103 ,32 ,111 ,114 ,105 ,103 ,105 ,110 ,97 ,108 ,61 ,34 ,109 ,97 ,115 ,115 ,34 ,62 ,232 ,180 ,168 ,233 ,135 ,143 ,60 ,47 ,115 ,116 ,114 ,105 ,110 ,103 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,116 ,114 ,97 ,110 ,115 ,108 ,97 ,116 ,105 ,111 ,110 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,47 ,116 ,114 ,97 ,110 ,115 ,108 ,97 ,116 ,105 ,111 ,110 ,115 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,100 ,97 ,116 ,97 ,45 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,115 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,95 ,98 ,117 ,102 ,102 ,101 ,114 ,95 ,108 ,101 ,110 ,103 ,116 ,104 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,115 ,116 ,97 ,114 ,116 ,95 ,51 ,48 ,95 ,109 ,105 ,110 ,117 ,115 ,95 ,105 ,110 ,100 ,101 ,120 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,51 ,48 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,95 ,51 ,48 ,95 ,98 ,117 ,102 ,102 ,101 ,114 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,99 ,111 ,110 ,115 ,116 ,97 ,110 ,116 ,95 ,51 ,48 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,48 ,48 ,48 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,116 ,105 ,109 ,101 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,48 ,48 ,48 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,48 ,48 ,48 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,115 ,116 ,100 ,100 ,101 ,118 ,95 ,109 ,97 ,115 ,115 ,95 ,118 ,97 ,108 ,117 ,101 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,48 ,48 ,48 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,115 ,116 ,100 ,100 ,101 ,118 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,48 ,48 ,48 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,112 ,114 ,111 ,100 ,117 ,99 ,116 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,48 ,48 ,48 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,111 ,117 ,116 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,48 ,48 ,48 ,34 ,32 ,115 ,116 ,97 ,116 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,97 ,118 ,101 ,114 ,97 ,103 ,101 ,60 ,47 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,47 ,100 ,97 ,116 ,97 ,45 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,115 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,98 ,108 ,117 ,101 ,116 ,111 ,111 ,116 ,104 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,48 ,49 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,49 ,48 ,48 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,50 ,53 ,48 ,34 ,32 ,32 ,32 ,32 ,109 ,111 ,100 ,101 ,61 ,34 ,110 ,111 ,116 ,105 ,102 ,105 ,99 ,97 ,116 ,105 ,111 ,110 ,34 ,32 ,114 ,97 ,116 ,101 ,61 ,34 ,49 ,34 ,32 ,115 ,117 ,98 ,115 ,99 ,114 ,105 ,98 ,101 ,79 ,110 ,83 ,116 ,97 ,114 ,116 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,99 ,104 ,97 ,114 ,61 ,34 ,99 ,100 ,100 ,102 ,49 ,48 ,48 ,50 ,45 ,51 ,48 ,102 ,55 ,45 ,52 ,54 ,55 ,49 ,45 ,56 ,98 ,52 ,51 ,45 ,53 ,101 ,52 ,48 ,98 ,97 ,53 ,51 ,53 ,49 ,52 ,97 ,34 ,32 ,99 ,111 ,110 ,118 ,101 ,114 ,115 ,105 ,111 ,110 ,61 ,34 ,102 ,108 ,111 ,97 ,116 ,51 ,50 ,76 ,105 ,116 ,116 ,108 ,101 ,69 ,110 ,100 ,105 ,97 ,110 ,34 ,32 ,111 ,102 ,102 ,115 ,101 ,116 ,61 ,34 ,48 ,34 ,32 ,108 ,101 ,110 ,103 ,116 ,104 ,61 ,34 ,52 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,99 ,104 ,97 ,114 ,61 ,34 ,99 ,100 ,100 ,102 ,49 ,48 ,48 ,50 ,45 ,51 ,48 ,102 ,55 ,45 ,52 ,54 ,55 ,49 ,45 ,56 ,98 ,52 ,51 ,45 ,53 ,101 ,52 ,48 ,98 ,97 ,53 ,51 ,53 ,49 ,52 ,97 ,34 ,32 ,99 ,111 ,110 ,118 ,101 ,114 ,115 ,105 ,111 ,110 ,61 ,34 ,115 ,116 ,114 ,105 ,110 ,103 ,34 ,32 ,101 ,120 ,116 ,114 ,97 ,61 ,34 ,116 ,105 ,109 ,101 ,34 ,62 ,116 ,105 ,109 ,101 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,98 ,108 ,117 ,101 ,116 ,111 ,111 ,116 ,104 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,97 ,110 ,97 ,108 ,121 ,115 ,105 ,115 ,32 ,115 ,108 ,101 ,101 ,112 ,61 ,34 ,48 ,34 ,32 ,32 ,111 ,110 ,85 ,115 ,101 ,114 ,73 ,110 ,112 ,117 ,116 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,97 ,112 ,112 ,101 ,110 ,100 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,52 ,57 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,56 ,55 ,46 ,54 ,53 ,49 ,55 ,57 ,53 ,56 ,54 ,52 ,49 ,48 ,53 ,50 ,50 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,54 ,49 ,53 ,46 ,55 ,56 ,50 ,55 ,56 ,55 ,51 ,50 ,50 ,57 ,57 ,56 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,105 ,110 ,34 ,32 ,116 ,121 ,112 ,101 ,61 ,34 ,118 ,97 ,108 ,117 ,101 ,34 ,62 ,49 ,54 ,48 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,111 ,117 ,116 ,34 ,62 ,99 ,111 ,110 ,115 ,116 ,97 ,110 ,116 ,95 ,51 ,48 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,97 ,112 ,112 ,101 ,110 ,100 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,99 ,111 ,117 ,110 ,116 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,53 ,48 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,51 ,52 ,52 ,46 ,52 ,50 ,50 ,54 ,50 ,52 ,49 ,49 ,49 ,49 ,55 ,53 ,53 ,52 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,52 ,48 ,49 ,46 ,53 ,52 ,52 ,54 ,53 ,56 ,54 ,54 ,48 ,56 ,56 ,56 ,55 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,98 ,117 ,102 ,102 ,101 ,114 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,99 ,111 ,117 ,110 ,116 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,95 ,98 ,117 ,102 ,102 ,101 ,114 ,95 ,108 ,101 ,110 ,103 ,116 ,104 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,99 ,111 ,117 ,110 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,102 ,111 ,114 ,109 ,117 ,108 ,97 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,53 ,49 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,51 ,57 ,56 ,46 ,49 ,56 ,49 ,53 ,57 ,54 ,50 ,55 ,57 ,49 ,52 ,52 ,51 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,54 ,48 ,49 ,46 ,49 ,55 ,50 ,54 ,52 ,57 ,51 ,56 ,51 ,53 ,52 ,52 ,57 ,34 ,32 ,102 ,111 ,114 ,109 ,117 ,108 ,97 ,61 ,34 ,91 ,49 ,95 ,93 ,45 ,91 ,50 ,95 ,93 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,105 ,110 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,95 ,98 ,117 ,102 ,102 ,101 ,114 ,95 ,108 ,101 ,110 ,103 ,116 ,104 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,105 ,110 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,99 ,111 ,110 ,115 ,116 ,97 ,110 ,116 ,95 ,51 ,48 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,111 ,117 ,116 ,34 ,62 ,115 ,116 ,97 ,114 ,116 ,95 ,51 ,48 ,95 ,109 ,105 ,110 ,117 ,115 ,95 ,105 ,110 ,100 ,101 ,120 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,102 ,111 ,114 ,109 ,117 ,108 ,97 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,117 ,98 ,114 ,97 ,110 ,103 ,101 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,53 ,50 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,54 ,50 ,55 ,46 ,49 ,57 ,54 ,52 ,56 ,56 ,56 ,53 ,55 ,50 ,54 ,57 ,51 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,51 ,57 ,55 ,46 ,57 ,54 ,55 ,50 ,56 ,49 ,51 ,52 ,49 ,53 ,53 ,50 ,55 ,51 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,105 ,110 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,102 ,114 ,111 ,109 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,115 ,116 ,97 ,114 ,116 ,95 ,51 ,48 ,95 ,109 ,105 ,110 ,117 ,115 ,95 ,105 ,110 ,100 ,101 ,120 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,116 ,111 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,95 ,98 ,117 ,102 ,102 ,101 ,114 ,95 ,108 ,101 ,110 ,103 ,116 ,104 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,111 ,117 ,116 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,95 ,51 ,48 ,95 ,98 ,117 ,102 ,102 ,101 ,114 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,115 ,117 ,98 ,114 ,97 ,110 ,103 ,101 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,97 ,118 ,101 ,114 ,97 ,103 ,101 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,53 ,51 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,56 ,53 ,57 ,46 ,50 ,51 ,56 ,49 ,51 ,48 ,48 ,57 ,50 ,54 ,50 ,48 ,56 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,51 ,57 ,48 ,46 ,49 ,54 ,48 ,55 ,51 ,50 ,50 ,54 ,57 ,50 ,56 ,55 ,49 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,98 ,117 ,102 ,102 ,101 ,114 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,95 ,51 ,48 ,95 ,98 ,117 ,102 ,102 ,101 ,114 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,97 ,118 ,101 ,114 ,97 ,103 ,101 ,34 ,62 ,97 ,118 ,101 ,114 ,97 ,103 ,101 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,115 ,116 ,100 ,100 ,101 ,118 ,34 ,62 ,115 ,116 ,100 ,100 ,101 ,118 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,97 ,118 ,101 ,114 ,97 ,103 ,101 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,97 ,112 ,112 ,101 ,110 ,100 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,53 ,52 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,49 ,49 ,51 ,49 ,46 ,55 ,52 ,52 ,48 ,54 ,53 ,55 ,54 ,49 ,53 ,54 ,54 ,50 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,51 ,51 ,49 ,46 ,52 ,50 ,53 ,54 ,48 ,57 ,53 ,56 ,56 ,54 ,50 ,51 ,48 ,53 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,105 ,110 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,111 ,117 ,116 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,105 ,110 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,97 ,118 ,101 ,114 ,97 ,103 ,101 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,111 ,117 ,116 ,34 ,62 ,111 ,117 ,116 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,97 ,112 ,112 ,101 ,110 ,100 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,109 ,117 ,108 ,116 ,105 ,112 ,108 ,121 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,53 ,53 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,49 ,52 ,49 ,56 ,46 ,57 ,56 ,56 ,49 ,55 ,53 ,56 ,54 ,56 ,57 ,56 ,56 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,49 ,56 ,50 ,46 ,51 ,54 ,48 ,49 ,51 ,52 ,49 ,50 ,52 ,55 ,53 ,53 ,56 ,54 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,102 ,97 ,99 ,116 ,111 ,114 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,111 ,117 ,116 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,102 ,97 ,99 ,116 ,111 ,114 ,34 ,32 ,116 ,121 ,112 ,101 ,61 ,34 ,118 ,97 ,108 ,117 ,101 ,34 ,62 ,49 ,48 ,50 ,46 ,49 ,52 ,54 ,52 ,54 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,112 ,114 ,111 ,100 ,117 ,99 ,116 ,34 ,62 ,112 ,114 ,111 ,100 ,117 ,99 ,116 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,109 ,117 ,108 ,116 ,105 ,112 ,108 ,121 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,109 ,117 ,108 ,116 ,105 ,112 ,108 ,121 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,53 ,54 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,49 ,52 ,50 ,54 ,46 ,53 ,57 ,56 ,50 ,56 ,51 ,50 ,57 ,48 ,56 ,54 ,51 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,53 ,48 ,51 ,46 ,49 ,48 ,55 ,49 ,56 ,57 ,49 ,55 ,56 ,52 ,54 ,54 ,56 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,102 ,97 ,99 ,116 ,111 ,114 ,34 ,32 ,99 ,108 ,101 ,97 ,114 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,62 ,115 ,116 ,100 ,100 ,101 ,118 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,102 ,97 ,99 ,116 ,111 ,114 ,34 ,32 ,116 ,121 ,112 ,101 ,61 ,34 ,118 ,97 ,108 ,117 ,101 ,34 ,62 ,49 ,48 ,50 ,46 ,49 ,52 ,54 ,52 ,54 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,111 ,117 ,116 ,112 ,117 ,116 ,32 ,97 ,115 ,61 ,34 ,112 ,114 ,111 ,100 ,117 ,99 ,116 ,34 ,62 ,115 ,116 ,100 ,100 ,101 ,118 ,95 ,109 ,97 ,115 ,115 ,95 ,118 ,97 ,108 ,117 ,101 ,60 ,47 ,111 ,117 ,116 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,109 ,117 ,108 ,116 ,105 ,112 ,108 ,121 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,47 ,97 ,110 ,97 ,108 ,121 ,115 ,105 ,115 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,118 ,105 ,101 ,119 ,115 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,118 ,105 ,101 ,119 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,70 ,111 ,114 ,99 ,101 ,32 ,45 ,32 ,116 ,105 ,109 ,101 ,32 ,71 ,114 ,97 ,112 ,104 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,103 ,114 ,97 ,112 ,104 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,54 ,51 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,53 ,53 ,51 ,46 ,49 ,56 ,52 ,53 ,56 ,55 ,48 ,48 ,49 ,56 ,48 ,48 ,53 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,49 ,56 ,54 ,46 ,55 ,54 ,49 ,57 ,49 ,51 ,50 ,57 ,57 ,53 ,54 ,48 ,53 ,53 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,70 ,45 ,116 ,32 ,71 ,114 ,97 ,112 ,104 ,34 ,32 ,97 ,115 ,112 ,101 ,99 ,116 ,82 ,97 ,116 ,105 ,111 ,61 ,34 ,50 ,46 ,53 ,34 ,32 ,115 ,116 ,121 ,108 ,101 ,61 ,34 ,108 ,105 ,110 ,101 ,115 ,34 ,32 ,108 ,105 ,110 ,101 ,87 ,105 ,100 ,116 ,104 ,61 ,34 ,49 ,34 ,32 ,99 ,111 ,108 ,111 ,114 ,61 ,34 ,102 ,102 ,55 ,101 ,50 ,50 ,34 ,32 ,112 ,97 ,114 ,116 ,105 ,97 ,108 ,85 ,112 ,100 ,97 ,116 ,101 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,32 ,104 ,105 ,115 ,116 ,111 ,114 ,121 ,61 ,34 ,49 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,88 ,61 ,34 ,116 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,89 ,61 ,34 ,70 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,90 ,61 ,34 ,34 ,32 ,117 ,110 ,105 ,116 ,88 ,61 ,34 ,115 ,34 ,32 ,117 ,110 ,105 ,116 ,89 ,61 ,34 ,78 ,34 ,32 ,117 ,110 ,105 ,116 ,90 ,61 ,34 ,34 ,32 ,108 ,111 ,103 ,88 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,32 ,108 ,111 ,103 ,89 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,32 ,108 ,111 ,103 ,90 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,32 ,120 ,80 ,114 ,101 ,99 ,105 ,115 ,105 ,111 ,110 ,61 ,34 ,50 ,34 ,32 ,121 ,80 ,114 ,101 ,99 ,105 ,115 ,105 ,111 ,110 ,61 ,34 ,50 ,34 ,32 ,122 ,80 ,114 ,101 ,99 ,105 ,115 ,105 ,111 ,110 ,61 ,34 ,50 ,34 ,32 ,115 ,99 ,97 ,108 ,101 ,77 ,105 ,110 ,88 ,61 ,34 ,97 ,117 ,116 ,111 ,34 ,32 ,115 ,99 ,97 ,108 ,101 ,77 ,97 ,120 ,88 ,61 ,34 ,97 ,117 ,116 ,111 ,34 ,32 ,115 ,99 ,97 ,108 ,101 ,77 ,105 ,110 ,89 ,61 ,34 ,97 ,117 ,116 ,111 ,34 ,32 ,115 ,99 ,97 ,108 ,101 ,77 ,97 ,120 ,89 ,61 ,34 ,97 ,117 ,116 ,111 ,34 ,32 ,115 ,99 ,97 ,108 ,101 ,77 ,105 ,110 ,90 ,61 ,34 ,97 ,117 ,116 ,111 ,34 ,32 ,115 ,99 ,97 ,108 ,101 ,77 ,97 ,120 ,90 ,61 ,34 ,97 ,117 ,116 ,111 ,34 ,32 ,109 ,105 ,110 ,88 ,61 ,34 ,48 ,34 ,32 ,109 ,97 ,120 ,88 ,61 ,34 ,48 ,34 ,32 ,109 ,105 ,110 ,89 ,61 ,34 ,48 ,34 ,32 ,109 ,97 ,120 ,89 ,61 ,34 ,48 ,34 ,32 ,109 ,105 ,110 ,90 ,61 ,34 ,48 ,34 ,32 ,109 ,97 ,120 ,90 ,61 ,34 ,48 ,34 ,32 ,32 ,109 ,97 ,112 ,87 ,105 ,100 ,116 ,104 ,61 ,34 ,48 ,34 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,120 ,105 ,115 ,61 ,34 ,120 ,34 ,62 ,116 ,105 ,109 ,101 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,32 ,97 ,120 ,105 ,115 ,61 ,34 ,121 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,103 ,114 ,97 ,112 ,104 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,101 ,112 ,97 ,114 ,97 ,116 ,111 ,114 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,54 ,52 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,48 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,48 ,34 ,32 ,104 ,101 ,105 ,103 ,104 ,116 ,61 ,34 ,48 ,46 ,49 ,34 ,32 ,99 ,111 ,108 ,111 ,114 ,61 ,34 ,52 ,48 ,52 ,48 ,52 ,48 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,115 ,101 ,112 ,97 ,114 ,97 ,116 ,111 ,114 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,118 ,97 ,108 ,117 ,101 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,54 ,53 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,53 ,52 ,57 ,46 ,48 ,54 ,56 ,52 ,57 ,56 ,49 ,51 ,52 ,54 ,49 ,51 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,55 ,53 ,46 ,56 ,53 ,52 ,49 ,54 ,55 ,57 ,51 ,56 ,50 ,51 ,50 ,52 ,50 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,70 ,34 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,50 ,34 ,32 ,112 ,114 ,101 ,99 ,105 ,115 ,105 ,111 ,110 ,61 ,34 ,50 ,34 ,32 ,115 ,99 ,105 ,101 ,110 ,116 ,105 ,102 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,32 ,117 ,110 ,105 ,116 ,61 ,34 ,78 ,34 ,32 ,102 ,97 ,99 ,116 ,111 ,114 ,61 ,34 ,49 ,34 ,32 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,62 ,102 ,111 ,114 ,99 ,101 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,118 ,97 ,108 ,117 ,101 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,118 ,105 ,101 ,119 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,118 ,105 ,101 ,119 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,70 ,111 ,114 ,99 ,101 ,95 ,118 ,97 ,108 ,117 ,101 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,102 ,111 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,54 ,54 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,48 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,48 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,70 ,111 ,114 ,99 ,101 ,32 ,118 ,97 ,108 ,117 ,101 ,34 ,32 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,105 ,110 ,102 ,111 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,118 ,97 ,108 ,117 ,101 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,54 ,55 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,49 ,49 ,51 ,51 ,46 ,56 ,55 ,50 ,48 ,53 ,54 ,52 ,56 ,52 ,50 ,50 ,50 ,52 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,50 ,50 ,49 ,46 ,54 ,54 ,51 ,55 ,48 ,55 ,55 ,51 ,51 ,49 ,53 ,52 ,51 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,70 ,111 ,114 ,99 ,101 ,32 ,118 ,97 ,108 ,117 ,101 ,34 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,50 ,34 ,32 ,112 ,114 ,101 ,99 ,105 ,115 ,105 ,111 ,110 ,61 ,34 ,50 ,34 ,32 ,115 ,99 ,105 ,101 ,110 ,116 ,105 ,102 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,32 ,117 ,110 ,105 ,116 ,61 ,34 ,78 ,34 ,32 ,102 ,97 ,99 ,116 ,111 ,114 ,61 ,34 ,49 ,34 ,32 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,62 ,111 ,117 ,116 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,118 ,97 ,108 ,117 ,101 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,118 ,97 ,108 ,117 ,101 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,54 ,56 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,49 ,49 ,51 ,50 ,46 ,56 ,51 ,57 ,51 ,55 ,50 ,49 ,53 ,56 ,48 ,53 ,48 ,53 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,55 ,54 ,51 ,46 ,56 ,51 ,54 ,51 ,52 ,53 ,54 ,55 ,50 ,54 ,48 ,55 ,52 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,115 ,116 ,100 ,100 ,101 ,118 ,95 ,102 ,111 ,114 ,99 ,101 ,95 ,99 ,111 ,110 ,116 ,97 ,105 ,110 ,101 ,114 ,34 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,34 ,32 ,112 ,114 ,101 ,99 ,105 ,115 ,105 ,111 ,110 ,61 ,34 ,50 ,34 ,32 ,115 ,99 ,105 ,101 ,110 ,116 ,105 ,102 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,32 ,117 ,110 ,105 ,116 ,61 ,34 ,78 ,34 ,32 ,102 ,97 ,99 ,116 ,111 ,114 ,61 ,34 ,49 ,34 ,32 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,62 ,115 ,116 ,100 ,100 ,101 ,118 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,118 ,97 ,108 ,117 ,101 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,118 ,105 ,101 ,119 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,118 ,105 ,101 ,119 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,77 ,97 ,115 ,115 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,102 ,111 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,54 ,57 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,48 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,48 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,109 ,97 ,115 ,115 ,34 ,32 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,105 ,110 ,102 ,111 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,118 ,97 ,108 ,117 ,101 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,55 ,48 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,49 ,55 ,48 ,54 ,46 ,57 ,48 ,49 ,56 ,55 ,50 ,49 ,53 ,56 ,48 ,53 ,48 ,53 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,49 ,51 ,53 ,46 ,55 ,56 ,56 ,55 ,48 ,55 ,55 ,51 ,51 ,49 ,53 ,52 ,51 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,109 ,97 ,115 ,115 ,34 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,50 ,34 ,32 ,112 ,114 ,101 ,99 ,105 ,115 ,105 ,111 ,110 ,61 ,34 ,50 ,34 ,32 ,115 ,99 ,105 ,101 ,110 ,116 ,105 ,102 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,32 ,117 ,110 ,105 ,116 ,61 ,34 ,103 ,34 ,32 ,102 ,97 ,99 ,116 ,111 ,114 ,61 ,34 ,49 ,34 ,32 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,62 ,112 ,114 ,111 ,100 ,117 ,99 ,116 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,118 ,97 ,108 ,117 ,101 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,118 ,97 ,108 ,117 ,101 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,117 ,117 ,105 ,100 ,61 ,34 ,49 ,55 ,49 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,120 ,61 ,34 ,49 ,54 ,56 ,56 ,46 ,48 ,54 ,53 ,53 ,54 ,56 ,52 ,52 ,55 ,49 ,49 ,51 ,34 ,32 ,101 ,100 ,105 ,116 ,111 ,114 ,58 ,112 ,111 ,115 ,121 ,61 ,34 ,53 ,50 ,53 ,46 ,53 ,54 ,50 ,53 ,49 ,49 ,52 ,52 ,52 ,48 ,57 ,49 ,56 ,34 ,32 ,108 ,97 ,98 ,101 ,108 ,61 ,34 ,115 ,116 ,100 ,100 ,101 ,118 ,34 ,32 ,115 ,105 ,122 ,101 ,61 ,34 ,49 ,34 ,32 ,112 ,114 ,101 ,99 ,105 ,115 ,105 ,111 ,110 ,61 ,34 ,50 ,34 ,32 ,115 ,99 ,105 ,101 ,110 ,116 ,105 ,102 ,105 ,99 ,61 ,34 ,102 ,97 ,108 ,115 ,101 ,34 ,32 ,117 ,110 ,105 ,116 ,61 ,34 ,103 ,34 ,32 ,102 ,97 ,99 ,116 ,111 ,114 ,61 ,34 ,49 ,34 ,32 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,105 ,110 ,112 ,117 ,116 ,62 ,115 ,116 ,100 ,100 ,101 ,118 ,95 ,109 ,97 ,115 ,115 ,95 ,118 ,97 ,108 ,117 ,101 ,60 ,47 ,105 ,110 ,112 ,117 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,118 ,97 ,108 ,117 ,101 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,118 ,105 ,101 ,119 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,47 ,118 ,105 ,101 ,119 ,115 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,101 ,120 ,112 ,111 ,114 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,101 ,116 ,32 ,110 ,97 ,109 ,101 ,61 ,34 ,102 ,111 ,114 ,99 ,101 ,95 ,116 ,105 ,109 ,101 ,95 ,100 ,97 ,116 ,97 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,100 ,97 ,116 ,97 ,32 ,110 ,97 ,109 ,101 ,61 ,34 ,84 ,105 ,109 ,101 ,47 ,115 ,34 ,62 ,116 ,105 ,109 ,101 ,60 ,47 ,100 ,97 ,116 ,97 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,100 ,97 ,116 ,97 ,32 ,110 ,97 ,109 ,101 ,61 ,34 ,70 ,111 ,114 ,99 ,101 ,47 ,78 ,34 ,62 ,102 ,111 ,114 ,99 ,101 ,60 ,47 ,100 ,97 ,116 ,97 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,115 ,101 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,115 ,101 ,116 ,32 ,110 ,97 ,109 ,101 ,61 ,34 ,109 ,97 ,115 ,115 ,95 ,103 ,34 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,100 ,97 ,116 ,97 ,32 ,110 ,97 ,109 ,101 ,61 ,34 ,77 ,97 ,115 ,115 ,47 ,103 ,34 ,62 ,112 ,114 ,111 ,100 ,117 ,99 ,116 ,60 ,47 ,100 ,97 ,116 ,97 ,62 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,60 ,47 ,115 ,101 ,116 ,62 ,10 ,32 ,32 ,32 ,32 ,60 ,47 ,101 ,120 ,112 ,111 ,114 ,116 ,62 ,10 ,60 ,47 ,112 ,104 ,121 ,112 ,104 ,111 ,120 ,62 ,10 ,
};




void setup(){
  Serial.begin(115200);
  delay(1000); //Take some time to open up the Serial Monitor

  //built in led 
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN,LOW);  
    
  //machine timme
  start_machine_time = millis();

  
  //Power Button 
/**
 * pinMode(13,INPUT_PULLDOWN); 
 * attachInterrupt(13,isr,HIGH);
**/
  // setup interrupt routine
  // when not registering to the interrupt the sketch also works when the tick is called frequently.
  attachInterrupt(digitalPinToInterrupt(PIN_INPUT), checkTicks, CHANGE);

  // link the xxxclick functions to be called on xxxclick event.
  button.attachClick(singleClick);
  button.attachDoubleClick(doubleClick);
  button.attachMultiClick(multiClick);

  button.setPressMs(1000); // that is the time when LongPressStart is called
  button.attachLongPressStart(pressStart);
  button.attachLongPressStop(pressStop);  
 
}

void loop(){
    button.tick();

    Serial.print("state:");Serial.println(machineState);

    if( machineState == WAKE_UP_STATE){
      //power Up led
      digitalWrite(LED_BUILTIN, LOW);
      digitalWrite(LED_BUILTIN, HIGH);
      delay(10);
      
      //hx711
      scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
      delay(1000);
      //scale.set_scale(25530.61f);//force sensor A scale 25530.61*2  1/N
      //scale.set_scale(59168.37f);//force sensor B scale 28859.69f*2 1/N
      scale.set_scale(SCALE_CONST); //force sensor C scale 54887.75f
      scale.tare();

      //timer setup
      //timer setup
  
      // as esp32 APH clock is 80 Mhz , 80 Mhz /80 =  1 MHz, 1us period time, and add up counting  ticks.
      timer =  timerBegin(0, 80, true); 
      timerAttachInterrupt(timer , timer0_callback, true);
      timerAlarmWrite(timer, 15000, true) ; // 20000 us tick , as 20 ms tick 
      timerAlarmEnable(timer); // start ticking.
      
     

      //phyphox Ble server start
      //PhyphoxBLE::start("ForceMeter",&MagnetoMeter_3D[0],sizeof(MagnetoMeter_3D));   //Start the BLE server
      PhyphoxBLE::start("ForceMeter_C",&Xer_force_sensor_20N_phyphox_file[0],sizeof(Xer_force_sensor_20N_phyphox_file));
      machineState = WORK_STATE;      
     }

     if(machineState == WORK_STATE)
     {
          digitalWrite(LED_BUILTIN, LOW);
          delay(1);
          digitalWrite(LED_BUILTIN,HIGH);
          delay(1);

          // sensor 's data reading
          button.tick();
          

          //if(timer_flag == 1){
          //  timer_flag = 0;
          //send data to phyphox

              if (scale.is_ready()) {
                float reading_units = scale.get_units();
                //Serial.print("HX711 reading: ");
                Serial.println(reading_units,2); //  unit : N ewton
                PhyphoxBLE::write(reading_units);
                } else {
              //Serial.println("HX711 not found.");
              }

          //}
               
      }
      
        
    if(machineState == SLEEP_STATE){
      
      machine_time = millis();
      if(machine_time - start_machine_time < 3000){
      button.tick();
      //waiting the button 13  to change state
      }
      else{
              
      esp_sleep_enable_ext0_wakeup(GPIO_NUM_13,1);
      Serial.println("Going to sleep now");
      esp_deep_sleep_start();
      }
    }
  
}
